Specialized processing devices can comprise processing circuitry that is pre-configured to perform a discrete set of computing operations more quickly than generalized central processing units. Application-Specific Integrated Circuits (ASICs) comprise integrated circuitry that is specifically designed to perform a specific set of operations or calculations, and, as such, can perform such operations or calculations more quickly, or more efficiently, than generalized central processing units. Field-Programmable Gate Arrays (FPGAs) likewise comprise integrated circuitry, typically in the form of programmable logic blocks comprised of individual microprocessor gates and other like integrated circuits, which can be programmed or designed to perform a specific set of operations or calculations more quickly, and more efficiently, then generalized central processing units.
One area in which customized integrated circuits, such as ASICs and FPGAs, are utilized to perform calculations is in the analysis of nucleotide sequences. As will be recognized by those skilled in the art, two strings of nucleotide sequences can be compared such that the manner in which they align can reveal important differences. One mechanism for performing such a local sequence alignment is the Smith Waterman algorithm. Prior efforts to perform Smith Waterman analysis utilizing customized integrated circuits have focused on performing the operations associated with sequence alignment in parallel. Indeed, the traditional mechanism by which most compute operations are implemented in customized integrated circuits, such as FPGAs, is to “unroll” any loop operations onto the spatial fabric of the FPGA so that they may be performed in parallel, and, thus, more quickly. However, within the context of Smith Waterman analysis, efforts to perform the operations associated with sequence alignment in parallel have required patches, or hacks, that themselves consume large portions of the spatial fabric of an FPGA. Moreover, parallel performance of Smith Waterman analysis operations instantiates a fixed amount of processing and, thereby, prevents optimization in specific instances.